﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using WebServiceApp;

namespace DAL
{
    public class DALJogos
    {
        public DALJogos()
        {

        }

        public DataTable GetJogos()
        {
            WS ws = new WS(Configuracoes.Conexoes[Configuracoes.ConexaoAtual]);
            return ws.GetJogos();
        }

        /// <summary>
        /// Retorna true se for Sucessao
        /// </summary>
        public bool InsertJogo(int IdProdutora, string titulo, string imagePath, string descricao, int categoria, double preco)
        {
            WS ws = new WS(Configuracoes.Conexoes[Configuracoes.ConexaoAtual]);

            return ws.InsertJogos(IdProdutora, titulo, imagePath, descricao, categoria, preco);

        }

        /// <summary>
        /// Retorna true se sucessao
        /// </summary>
        public bool DeleteJogo(int idJogo)
        {
            WS ws = new WS(Configuracoes.Conexoes[Configuracoes.ConexaoAtual]);

            return ws.DeletarJogo(idJogo);

        }

        /// <summary>
        /// Retorna true se sucessao
        /// </summary>
        public bool UpdateJogo(int idJogo, int idProdutora, string titulo, string imagePath, string descricao, int categoria, double preco)
        {
            WS ws = new WS(Configuracoes.Conexoes[Configuracoes.ConexaoAtual]);

            return ws.UpdateJogo(idJogo, idProdutora, titulo, imagePath, descricao, categoria, preco);
        }

        public DataTable GetJogosByField(int colunaFiltro, string filtro)
        {
            string cf = "";
            WebServiceApp.WS ws = new WebServiceApp.WS(Configuracoes.Conexoes[Configuracoes.ConexaoAtual]);

            switch (colunaFiltro)
            {
                case 0:
                    cf = "Jogos.Nome";
                    break;

                case 1:
                    cf = "Produtora.Nome";
                    break;

                case 2:
                    cf = "Categoria.Nome";
                    break;
            }

            return ws.GetJogosByField(cf, filtro);
        }

        public DataTable GetJogoById(int id)
        {
            WS ws = new WS(Configuracoes.Conexoes[Configuracoes.ConexaoAtual]);

            return ws.GetJogoByID(id);
        }

        public DataTable GetJogosByCliente(int cliente)
        {
            WS ws = new WS(Configuracoes.Conexoes[Configuracoes.ConexaoAtual]);

            return ws.GetJogosByCliente(cliente);
        }


        /// <summary>
        /// Retorna os dados da tabela cliente e jogos
        /// </summary>
        /// <returns></returns>
        public DataTable GetClientesJogos()
        {
            WS ws = new WS(Configuracoes.Conexoes[Configuracoes.ConexaoAtual]);

            return ws.GetClientesJogos();
        }
    }
}
